#!/usr/bin/env python3 from scapy.all import * from socket import AF_INET, SOCK_DGRAM, socket sock = socket(AF_INET, SOCK_DGRAM) sock.bind(('0.0.0.0', 1053)) while True: request, addr = sock.recvfrom(4096) DNSreq = DNS(request) query = DNSreq.qd.qname print(query.decode('ascii')) ls(DNSreq) Anssec = DNSRR(rrname=DNSreq.qd.qname, type='A', rdata='1.2.3.4', ttl=86400) NSsec1 = DNSRR(rrname="ycp.edu", type='NS', rdata='ns1.ycp.edu', ttl=86400) NSsec2 = DNSRR(rrname="ycp.edu", type='NS', rdata='ns2.ycp.edu', ttl=86400) Addsec1 = DNSRR(rrname='ns1.ycp.edu', type='A', rdata='4.3.2.1', ttl=86400) Addsec2 = DNSRR(rrname='ns2.ycp.edu', type='A', rdata='5.4.3.2', ttl=86400) DNSpkt = DNS(id=DNSreq.id, aa=1, rd=0, qr=1, qdcount=1, ancount=1, nscount=2, arcount=2, qd=DNSreq.qd, an=Anssec, ns=NSsec1/NSsec2, ar=Addsec1/Addsec2) DNSpkt.show() sock.sendto(bytes(DNSpkt), addr)